tinymce.PluginManager.add("kityformula-editor", function (editor, url) {
  console.log(tinymce.baseURL);

  var baseURL = "/plugins/kityformula-editor/kityFormula.html";
  console.log(baseURL);

  editor.on("dblclick", function () {
    var sel = editor.selection.getContent();
    var path =
      /\<img(.*?)src="data:image\/png;base64,[A-Za-z0-9+/=]*"(.*?)data-latex="(.*?)" \/>/g;
    var path2 = /data-latex="(.*?)"/g;

    if (sel.search(path) == 0) {
      sel.replace(path2, function ($0, $1) {
        var param = encodeURIComponent($1);
        openDialog(param);
        return $0;
      });
    }
  });

  var openDialog = function (param) {
    return editor.windowManager.openUrl({
      title: "插入公式",
      size: "large",
      width: 785,
      height: 475,
      url: param ? baseURL + "?c=" + param : baseURL,
      buttons: [
        {
          type: "cancel",
          text: "Close",
        },
        {
          type: "custom",
          text: "Save",
          name: "save",
          primary: true,
        },
      ],
      onAction: function (api, details) {
        switch (details.name) {
          case "save":
            api.sendMessage("save");
            break;
          default:
            break;
        }
      },
    });
  };

  editor.ui.registry.addButton("kityformula-editor", {
    text: "公式",
    tooltip: "插入公式",
    onAction: function () {
      openDialog();
    },
  });
  editor.ui.registry.addMenuItem("kityformula-editor", {
    text: "公式",
    onAction: function () {
      openDialog();
    },
  });
  return {
    getMetadata: function () {
      return {
        name: "公式",
      };
    },
  };
});
